<?php
include_once '../modelo/Conexion.php';
include_once '../modelo/InterfazDatos.php';
include_once '../modelo/InterfazVista.php';
include_once '../modelo/Entidades/Rubro.php';


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of Controlador
 *
 * @author home
 */

class Controlador 
{
    private $conexion;
    
    function __construct($conexion) 
    {
        $this->conexion = $conexion;
        $this->conexion->conexion();
    }

    
    //Se encarga de gestionar los eventos que se envie desde las paginas
    public function gestionEventos()
    {
        
        switch ($this->getPostOpcion())
        {
            case "grabar":$this->grabar(); break;
                        
            case "editar":$this->editar();break;
            
            case "eliminar":$this->eliminar();break;
                    
                            break;            
          //  case "editar": $this->conexion->editar($this->entidad);
           //                 break;
         //   case "eliminar": $this->conexion->eliminar($this->entidad);
          //                  break;
                        
        }
        
    }
    
    public function grabar()
    {
        $entidad=  $this->tipoDeDato($this->getPostObjeto());
        $this->conexion->grabar($entidad);
        header("Location: ../vista/".$this->getPostPagina().".html");
        
    }
    
    public function editar()
    {
        $entidad=  $this->tipoDeDato($this->getPostObjeto());
        $this->conexion->editar($entidad);
        header("Location: ../vista/".$this->getPostPagina().".html");
    }
    
    public function eliminar()
    {
        $entidad=  $this->tipoDeDato($this->getPostObjeto());
        $this->conexion->eliminar($entidad);
        header("Location: ../vista/".$this->getPostPagina().".html");
        
        //header("Location: ../vista/".$this->getPostPagina().".html");    
    }
    
   
    
    public function getDatos()
    {
     
        $pagina=  file_get_contents('../vista/'.$_POST['redireccionar'].".html");
        $tabla=  $this->entidad->getDatos();
        echo $this->entidad."</br>";
        for ($index = 0; $index < count($tabla); $index++) 
        {
           echo $tabla[$index][0]." => ".$tabla[$index][1]."</br>";
           $pagina=  str_replace($tabla[$index][0],$tabla[$index][1], $pagina);
           
        }
       
       // foreach ($tabla as $referencia => $valor) 
       // {
        //    echo $referencia."=>".$valor;
        //    $pagina=  str_replace("[".$referencia."]", $valor, $pagina);
      //  }
        print $pagina;
        echo "pagina modificada";
        
    }


    public function tipoDeDato($objeto)
    {
         
        switch ($objeto)
        {
            case "rubros":
                          if(isset($_REQUEST['tipo']) && isset($_REQUEST['costo']) && isset($_REQUEST['descripcion']) )
                          {
                            return$rubro= new Rubro($_POST['codigo'],$_POST['tipo'],$_POST['costo'],$_POST['descripcion']);
                            //echo "eliminar";
                          }
                          else
                          {
                                $rubro=new Rubro($_REQUEST['codigo'],"","","");
                                $rubro=$rubro->getEntidad($this->conexion->consulta($rubro));
                                //echo $rubro;
                                return $rubro;
                          }
                           break;
                       
        }
               
        
        
    }
   
    
    
    //Conjunto de metodos que obtienen los valores de enviados por el metodo POST
    public function getPostOpcion()
    {
        return $_REQUEST['opcion'];         
        
    }
    
    public function getPostObjeto()
    {
        return $_REQUEST['objeto'];       
        
    }
    
    public function getPostPagina()
    {
        return $_REQUEST['pagina'];
        
    }
   
 
}

 //menu principal de php
$conexion=new Conexion("localhost","selvaalegre","root","1234");
$controlador=new Controlador($conexion);
$controlador->gestionEventos();       

?>
